package 常用类.Array类.map.map课后练习;

import java.util.*;

/*
世界杯
 */
public class Exercise2 {
    public static void main(String[] args) {
        Map<Integer,String> map=new HashMap<>();
        map.put(1930,"乌拉圭");
        map.put(1934,"意大利");
        map.put(1938,"意大利");
        map.put(1950,"乌拉圭");
        map.put(1954,"西德");
        map.put(1958,"巴西");
        map.put(1962,"巴西");
        map.put(1966,"英格兰");
        map.put(1970,"巴西");
        map.put(1974,"西德");
        map.put(1978,"阿根廷");
        map.put(1982,"意大利");
        map.put(1986,"阿根廷");
        map.put(1990,"西德");
        map.put(1994,"巴西");
        map.put(1998,"法国");
        map.put(2002,"巴西");
        map.put(2006,"意大利");
        map.put(2010,"西班牙");
        map.put(2014,"德国");
        //1.(1)从命令行读入一个字符串，表示一个年份，输出该年的世界杯冠军是哪支球队。
        // 如果该年没有举办世界杯，则输出：没有举办世界杯。
        //方法一
        Scanner input=new Scanner(System.in);
        System.out.println("请输入年份：");
        int year=input.nextInt();
        //检测map集合中是否包含year（key）
        if (map.containsKey(year)){
            System.out.println(year+"年的世界杯冠军为："+map.get(year));
        }else {
            System.out.println(year+"年没有举办世界杯");
        }

//        //方法二
//        String str=map.get(year);
//        System.out.println("请输入年份：");
//        if (str!=null&&!str.equals("")){
//            System.out.println(year+"年的世界杯冠军为："+str);
//        }else {
//            System.out.println("该年没有举办世界杯");
//        }


        /***
         * (2) 在原有世界杯Map的基础上，增加如下功能：读入一支球队的名字，输出该球队夺冠的年份列表。
         * 例如，读入“巴西”，应当输出 1958 1962 1970 1994 2002 读入“荷兰”，应当输出 没有获得过世界杯。
         */
        System.out.println("请输入要查询球队名称");
        //输入球队名
        String str=input.next();
        //检测是否包含对应的value
        if (map.containsValue(str)){
            //创建用于储存夺冠年份的List集合
            List<Integer> yearList=new ArrayList<Integer>();
            //遍历Map集合
            for (Map.Entry<Integer,String> entry:map.entrySet()){
                if (entry.getValue().equals(str)){
                    yearList.add(entry.getKey());
                }
            }
            System.out.println(str+"球队获得世界杯冠军的年份为：");
            for (int year1:yearList){
                System.out.print(year1+" ");
            }
        }else {
            System.out.println(str+"该球队未获得世界杯冠军");
        }
    }
}
